package myjava3d;

import javax.media.j3d.BoundingSphere;
import javax.media.j3d.Canvas3D;
import javax.swing.JFrame;
import javax.vecmath.Point3d;

import com.sun.j3d.utils.behaviors.vp.OrbitBehavior;
import com.sun.j3d.utils.universe.SimpleUniverse;

public class MyScreen extends JFrame {
	public Canvas3D myCanvas3D; //= Leinwand

	private static final long serialVersionUID = 1L;
	
	public MyScreen() {
		
		//Standardeinstellung fuer Universum
		myCanvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
		
		//Universum mit Canvas verbinden
		SimpleUniverse simpUniv = new SimpleUniverse(myCanvas3D);
		
		//Betrachterpunkt umkreist NullPunkt
		simpUniv.getViewingPlatform().setNominalViewingTransform();
		
		//Die Szene wird in dieser Methode erzeugt.
		//Modell erzeugen und zum Universe hinzufuegen
		MyModel box = new MyModel();
	    simpUniv.addBranchGraph(box.getBranchGroup());
	    
	    //Hinzufuegen von Licht
	    MyLight light = new MyLight();
	    simpUniv.addBranchGraph(light.getBranchGroup());
	    
	    //Hierdurch kann man mit der Maus den Betrachterstandpunkt veraendern
	    OrbitBehavior ob = new OrbitBehavior(myCanvas3D);
	    ob.setSchedulingBounds(new BoundingSphere(new Point3d(0.0,0.0,0.0),Double.MAX_VALUE));
	    simpUniv.getViewingPlatform().setViewPlatformBehavior(ob);
	}
}
